package hugeinteger;

public class HugeInteger {
    int [] digits = new int[40];
    HugeInteger (String s) {
        for (int i = 0; i < digits.length; i++) {
            int zero_flag = digits.length - s.length();
            if (i >= zero_flag) {
                digits[i] = Integer.parseInt(String.valueOf(s.charAt(i - zero_flag)));
            }
            else {
                digits[i] = 0;
            }
        }
    }
    void input (String s) {
        for (int i = 0; i < digits.length; i++) {
            int zero_flag = digits.length - s.length();
            if (i >= zero_flag) {
                digits[i] = Integer.parseInt(String.valueOf(s.charAt(i - zero_flag)));
            }
            else {
                digits[i] = 0;
            }
        }
    }
    void output () {
        String s = "";
        boolean flag = true;
        for (int i = 0; i < digits.length; i++) {
            if (flag) {
                if (digits[i] != 0) {
                    flag = false;
                }
            }
            if (!flag) {
                s += digits[i];
            }
        }
        if (s == "") {
            s = "0";
        }
        System.out.println(s);
    }
    void add (HugeInteger new_integer) {
        int add_flag = 0;
        for (int i = digits.length - 1; i >= 0; i--) {
            int result = digits[i] + new_integer.digits[i] +add_flag;
            if (result >= 10) {
                result -= 10;
                add_flag = 1;
            }
            else {
                add_flag = 0;
            }
            digits[i] = result;
        }
    }
    boolean isEqualTo (HugeInteger new_integer) {
        for (int i = 0; i < digits.length; i++) {
            if (digits[i] != new_integer.digits[i]) {
                return false;
            }
        }
        return true;
    }
    boolean isNotEqualTo (HugeInteger new_integer) {
        for (int i = 0; i < digits.length; i++) {
            if (digits[i] != new_integer.digits[i]) {
                return true;
            }
        }
        return false;
    }
    boolean isGreaterThan (HugeInteger new_integer) {
        for (int i = 0; i < digits.length; i++) {
            if (digits[i] > new_integer.digits[i]) {
                return true;
            }
            else if (digits[i] < new_integer.digits[i]) {
                return false;
            }
        }
        return false;
    }
    boolean isLessThan (HugeInteger new_integer) {
        for (int i = 0; i < digits.length; i++) {
            if (digits[i] < new_integer.digits[i]) {
                return true;
            }
            else if (digits[i] > new_integer.digits[i]) {
                return false;
            }
        }
        return false;
    }
    boolean isGreaterThanOrEqualTo (HugeInteger new_integer) {
        for (int i = 0; i < digits.length; i++) {
            if (digits[i] > new_integer.digits[i]) {
                return true;
            }
            else if (digits[i] < new_integer.digits[i]) {
                return false;
            }
        }
        return true;
    }
    boolean isLessThanOrEqualTo (HugeInteger new_integer) {
        for (int i = 0; i < digits.length; i++) {
            if (digits[i] < new_integer.digits[i]) {
                return true;
            }
            else if (digits[i] > new_integer.digits[i]) {
                return false;
            }
        }
        return true;
    }
}
